package com.ailsa.learningsystem.dao;

import com.ailsa.learningsystem.pojo.Users;

import java.util.List;

/**
 * @Author 冉冉
 * @Version 1.0
 * 编程要求：
 * 1.项目名称：全部小写，每个单词首字大写即可，不允许出现中文
 * 2.类名：首字母必须大写，每一个单词的首字母必须大写，不允许出现中文
 * 3.变量名称和方法名称：首字母必须小写，每一个单词的首字母必须大写，不允许出现中文
 * UsersDao目的：实现用户的增删改查，实现用户的注册，登录
 * 注册实现：
 *      1.用户名
 *      2.密码
 *      3.角色
 * 将三个参数封装到Users对象中
 *
 */

public interface UsersDao {
    /**
     *注册的功能：添加或者增加
     * @param users
     */
    public void register(Users users);

    /**
     * 查询所有的用户信息：不可能只有一个用户的信息，如果有多个用户的信息怎么样返回呢？？
     * 我们可以将多个用户信息封装在List集合，将List集合进行返回
     *集合中：
     *      1.list集合：存储元素可以重复，并且有序的
     *          1.1：ArrayList实现类：底层是数组，查询是比较快的
     *          1.2：linkedList实现类：底层是双向链表，添加和删除比较快
     *      2.Set集合：存储元素不可以重复，必须是唯一性，并且是无序的
     *          2.1：HashSet实现类:底层是哈希表
     *          2.2：TreeSet实现类：底层是二叉树
     *      3.Map集合：存储的元素不可以重复，Key不能重复，Value值可以重复，没有修改的方法
     *          3.1：HashMap实现类:底层首先实现HashSet，底层是哈希表
     *      *   3.2：TreeMap实现类：底层首先实现的是TreeSet，底层是二叉树
     * 最终返回的是Users的信息
     */
    public List<Users> getAllUsers();
    /**
     * 根据用户名和密码以及角色进行登录，判断用户名和密码是否正确，如果正确登录成功
     * 将用户名和密码以及角色封装在Users对象中，所以参数可以直接使用Users
     */
    public boolean login(Users users);
}
